#ifndef __GLF_REMOTE_RENDERER_H_INCLUDED__
#define __GLF_REMOTE_RENDERER_H_INCLUDED__

#include <glf/config.h>


#include <glf/math/vec3.h>

namespace glf
{
	namespace remote
	{

		//Renderer
		class Renderer
		{
		public:

			//PrimitiveType
			enum PrimitiveType
			{	
				PT_UNDEFINED = -1,
				PT_LINE_LOOP,
				PT_LINES,
				PT_POINTS,
				PT_TRIANGLE_FAN,
				PT_TRIANGLE_STRIP,
				PT_TRIANGLES
			};

		public:
			Renderer() {}
			virtual ~Renderer() {}

		public:		
			virtual void Begin2D(int w, int h) = 0;
			virtual void DrawPrimitive(PrimitiveType type, const float *v, int size, const Vec4f &color, float orientation) = 0;
			virtual void End2D() = 0;
		};

	} //eon remote
} //eon glf


#endif //__GLF_REMOTE_RENDERER_H_INCLUDED__